home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / pxewin.zip / PXTBL.HPP < prev    next >
C/C++ Source or Header  |  1992-02-06  |  3KB  |  112 lines

  1. // PXEWIN - (C) Copyright 1992 by Beam Engineering, INC.
  2.  
  3. // PXTBL.HPP //
  4.  
  5. // Contents ----------------------------------------------------------------
  6. //
  7. //    PXTbl.  Class for handling PX table operations.
  8. //
  9. // End ---------------------------------------------------------------------
  10.  
  11. // External Reference Name for this Header ---------------------------------
  12.  
  13. #ifndef PXTBL_HPP
  14.     #define PXTBL_HPP
  15.  
  16. // End ---------------------------------------------------------------------
  17.  
  18. // Interface Dependencies --------------------------------------------------
  19.  
  20. #ifndef PXEOBJ_CPP
  21.     #include "pxeobj.cpp"
  22. #endif // PXEOBJ_CPP //
  23.  
  24. // End ---------------------------------------------------------------------
  25.  
  26. // class PXTbl //
  27.  
  28. #define MAXSIZE 50                /* Maximum size of database
  29.                            name */
  30.  
  31. _CLASSDEF(PXTbl)
  32. class PXTbl:public PXEngObject
  33. {
  34. private:
  35.                         /* Object name for stream
  36.                            manager */
  37.     virtual const Pchar streamableName() const
  38.     {
  39.         return "PXTbl";
  40.     }
  41. protected:
  42.     int inx;                /* Current index */
  43.     int md;                    /* Table Mode */
  44.     int operation;                /* Table operation */
  45.     int exist;                /* True if table exists */
  46.                         /* Empty a table.  The main
  47.                            reason for the isolation
  48.                            is to keep access to this
  49.                            member restricted to the
  50.                            constructor for the table
  51.                            class since you must have
  52.                            a closed table before you
  53.                            can empty it. */
  54.     int Empty(Pchar name);
  55.     int Exists(void);
  56.     virtual Pvoid read(Ripstream);        /* Read persistant object */
  57.     virtual void write(Ropstream);        /* Write persistant object */
  58.     PXTbl(StreamableInit):            /* Persistant object
  59.                            constructor */
  60.         PXEngObject(streamableInit)
  61.     {
  62.  
  63.     }
  64. public:
  65.                         /* Constructor copies the
  66.                            parent object pointer */
  67.     PXTbl(PPXEngObject my_object);
  68.     static PTStreamable build();        /* Build persistant object */
  69.                         /* Open table in with correct
  70.                            mode and operation */
  71.     int Open(int index,int mode,int op);
  72.                         /* Use this constructor when
  73.                            you wish to create a new
  74.                            table */
  75.     int Open(int nfields,PPchar fields,
  76.         PPchar types,int index,
  77.         int mode);
  78.     virtual ~PXTbl();            /* Closes table */
  79.     int NumRecs();                /* Get the number of records
  80.                            in the table */
  81.     int NumFlds();                /* Number of fields in tbl */
  82.     RECORDNUMBER RetNumRecs()        /* Returns number of records
  83.                            in database. */
  84.     {
  85.         return EngDataPtr->num_recs;
  86.     }
  87.     virtual void PXError(int org);        /* Table error handler */
  88. };
  89.  
  90. // Description -------------------------------------------------------------
  91. //
  92. //    This class contains the constructors, destructors and members for
  93. //    interfacing with a Paradox table.  It uses PXENGINE function calls.
  94. //
  95. // End ---------------------------------------------------------------------
  96.  
  97. // Define inserters and extractors for persistant objects:
  98.  
  99. inline Ripstream operator >> (Ripstream is,RPXTbl cl)
  100.     {return is >> (RTStreamable)cl;}
  101.  
  102. inline Ripstream operator >> (Ripstream is,RPPXTbl cl)
  103.     {return is >> (RPvoid)cl;}
  104.  
  105. inline Ropstream operator << (Ropstream os,RPXTbl cl)
  106.     {return os << (RTStreamable)cl;}
  107.  
  108. inline Ropstream operator << (Ropstream os,PPXTbl cl)
  109.     {return os << (PTStreamable)cl;}
  110.  
  111.  
  112. #endif // PXTBL_HPP //